package com.mtt.erp.logistics.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 电子面单DTO
 */
@Getter
@Setter
@ToString
@ApiModel(
        description = "电子面单信息"
)
public class FaceOrderPrintDto implements Serializable {
    private static final long serialVersionUID = 1L;
    //订单编码
    @ApiModelProperty(
            value = "订单号",
            required = true
    )
    private String orderCode;
    //快递公司编码
    @ApiModelProperty(
            value = "快递公司英文编码(不是公司名称缩写)",
            required = true
    )
    private String shipperCode;

    //运费支付方式： 1-现付，2-到付，3-月结，4第三方付(仅 SF 支持)
    @ApiModelProperty(
            value = "运费支付方式1-现付，2-到付，3-月结，4第三方付(仅 SF 支持)",
            required = true
    )
    private Integer payType;
    //详细快递类型
    @ApiModelProperty(
            value = "详细快递类型(默认为1)",
            required = true
    )
    private Integer expType;
    //快递运费
    @ApiModelProperty(
            value = "快递运费"
    )
    private Double cost;
    //其他费用
    @ApiModelProperty(
            value = "其他费用"
    )
    private Double otherCost;
    //寄货人信息
    @ApiModelProperty(
            value = "寄货人信息",
            required = true
    )
    private FaceOrderPerson sender;
    //寄货人收货人信息
    @ApiModelProperty(
            value = "收货人信息",
            required = true
    )
    private FaceOrderPerson receiver;
    //寄托物信息
    @ApiModelProperty(
            value = "寄托物信息",
            required = true
    )
    private List<FaceOrderCommodityDto> commodity;
    //包裹总重量 kg 当为快运的订单时必填，不填时快递鸟将根据各个快运公司要求传对应的默认值
    @ApiModelProperty(
            value = "包裹总重量 kg 当为快运的订单时必填，不填时快递鸟将根据各个快运公司要求传对应的默认值"
    )
    private Double weight;
    //包裹数(最多支持 300 件)
    @ApiModelProperty(
            value = "包裹数(最多支持 300 件)"
    )
    private Integer quantity;
    //包裹总体积 m3
    @ApiModelProperty(
            value = "包裹总体积 m3"
    )
    private Double volume;
    //备注
    @ApiModelProperty(
            value = "备注"
    )
    private String remark;
    //是否返回电子面单模板： 0-不需要，1-需要
    @ApiModelProperty(
            value = "是否返回电子面单模板:0-不需要，1-需要"
    )
    private Integer isReturnPrintTemplate;
    //需要的时候再使用
    //送货方式(快运字段)默认为0； 0-自提，1-送货上门（不含上楼），2-送货上楼
    @ApiModelProperty(
            value = "送货方式(快运字段)默认为0;0-自提，1-送货上门（不含上楼），2-送货上楼"
    )
    private Integer deliveryMethod;

    // 是否通知快递员上门揽件 0-通知，1-不通知，不填则默
    @ApiModelProperty(
            value = "是否通知快递员上门揽件 0-通知，1-不通知，不填则默认0"
    )
    private Integer isNotice;

}
